Skip to content

Conversation

marcprux
Copy link

Following up on swiftlang/github-workflows#106 and swiftlang/swift#80788, this PR contains a new swift-docker/swift-ci/sdks/android/ folder with scripts that will build and upload a full stand-alone Swift Android Swift SDK. It is modeled after the structure of the swift-ci/sdks/static-linux build scripts.

Running

The top-level ./build script installs a host toolchain and the Android NDK, and then invokes scripts/fetch-source.sh which will fetch tagged sources for libxml2, curl, boringssl, and swift.

It then applies some patches and invokes scripts/build.sh, which will build the sources for each of the specified architectures. Finally, it combines the NDK and the newly built SDKs into a single artifactbundle.

Specifying Architectures

By default all the supported Android architectures (aarch64, x86_64, aarmv7) will be built, but this can be reduced in order to speed up the build. This can be useful, e.g., as part of a CI that validates a pull request, as building a single architecture takes around 30 minutes on a standard ubuntu-24.04 GitHub runner, whereas building for all the architectures takes over an hour.

To build an artifactbundle for just the x86_64 architecture, run:

TARGET_ARCHS=x86_64 ./build

Installing and validating the SDK

The .github/workflows/pull_request.yml workflow will create and upload an installable SDK named something like: swift-6.1-RELEASE_android-0.1.artifactbundle.tar.gz. The results of one of the workflow runs can be seen at https://github.com/swift-android-sdk/swift-docker/actions/runs/14603885089

The workflow will also install the SDK locally and use swift-android-action to build and test various Swift packages in an Android emulator.

marcprux and others added 5 commits March 31, 2025 14:28
* Build Android image

* Checkout without ssh

* Retry build if it fails

* Swift 6.1 Release Dockerfiles (swiftlang#456)

* Change binutils-gold package dependency on Debian 12 to binutils (swiftlang#457)

* Update installed packages after nightly platform expansion (swiftlang#458)

* update nightly-6.1 dependencies

* update nightly-main dependencies

* fix ubuntu images

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Fedora 41 Dockerfile (swiftlang#464)

* Build Android image

* Build Android image

* Swift 6.1 Release Dockerfiles (swiftlang#456)

* Change binutils-gold package dependency on Debian 12 to binutils (swiftlang#457)

* Build Android image

* Build Android image

* Build Android image

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Android SDK build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Androd build

* Swift Android build

* Swift Android build

* Swift Android build

* Swift Android build

---------

Co-authored-by: Mishal Shah <[email protected]>
Co-authored-by: Chris McGee <[email protected]>
Co-authored-by: Justice Adams <[email protected]>
Co-authored-by: Andrew Sukach <[email protected]>
* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Start splitting NDK out from the rest of the SDK

* Start splitting NDK out from the rest of the SDK

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2

* Swift Android build 6.2
* Swift Android build 6.2

* Swift Android build 6.2

* Add post-install script to SDK bundle

* Add post-install script to SDK bundle

* Add post-install script to SDK bundle

* Add post-install script to SDK bundle
@marcprux
Copy link
Author

marcprux commented May 8, 2025

I've updated this PR to build the SDK without including the Android NDK. In order to accommodate this, there is now a post-install scripts/setup-android-sdk.sh that will need to be run manually after the swift sdk install … command. This will find the NDK based on the standard ANDROID_NDK_HOME environment variable and create links from the NDK into the path specified by swift-sdk.json's sdkRootPath, as well as pulling in the swiftrt.o to work around swiftlang/swift#79621.

The latest result of the build for the 6.2 nightly can be seen at: https://github.com/skiptools/swift-android-toolchain/releases/tag/6.2-DEVELOPMENT-SNAPSHOT-2025-05-07-a

@marcprux marcprux marked this pull request as ready for review May 8, 2025 19:30
@marcprux marcprux requested a review from shahmishal as a code owner May 8, 2025 19:30
@marcprux
Copy link
Author

marcprux commented May 8, 2025

To clarify what the post-install script is doing, following is a result of the output of the command with the default NDK directory:

zap org.swift.swiftpm/swift-sdks % tree swift-6.2-DEVELOPMENT-SNAPSHOT-2025-05-07-a-android-0.1.artifactbundle/swift-android/ndk-sysroot
└── usr
    ├── include -> ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include
    └── lib
        ├── aarch64-linux-android -> ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android
        ├── arm-linux-androideabi -> ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi
        ├── x86_64-linux-android -> ~/Library/Android/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android
        ├── swift
        │   └── android
        │       ├── aarch64
        │       │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift-aarch64/android/aarch64/swiftrt.o
        │       ├── armv7
        │       │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift-armv7/android/armv7/swiftrt.o
        │       └── x86_64
        │           └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift-x86_64/android/x86_64/swiftrt.o
        └── swift_static
            └── android
                ├── aarch64
                │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift_static-aarch64/android/aarch64/swiftrt.o
                ├── armv7
                │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift_static-armv7/android/armv7/swiftrt.o
                └── x86_64
                    └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift_static-x86_64/android/x86_64/swiftrt.o

Alternative NDK locations can be specified by overriding the ANDROID_NDK_HOME, like so:

zap org.swift.swiftpm/swift-sdks % ANDROID_NDK_HOME="/opt/homebrew/share/android-ndk" swift-6.2-DEVELOPMENT-SNAPSHOT-2025-05-07-a-android-0.1.artifactbundle/swift-android/scripts/setup-android-sdk.sh
setup-android-sdk.sh: success: ndk-sysroot linked to Android SDK

zap org.swift.swiftpm/swift-sdks % tree swift-6.2-DEVELOPMENT-SNAPSHOT-2025-05-07-a-android-0.1.artifactbundle/swift-android/ndk-sysroot
└── usr
    ├── include -> /opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include
    └── lib
        ├── aarch64-linux-android -> /opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android
        ├── arm-linux-androideabi -> /opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi
        ├── x86_64-linux-android -> /opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android
        ├── swift
        │   └── android
        │       ├── aarch64
        │       │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift-aarch64/android/aarch64/swiftrt.o
        │       ├── armv7
        │       │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift-armv7/android/armv7/swiftrt.o
        │       └── x86_64
        │           └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift-x86_64/android/x86_64/swiftrt.o
        └── swift_static
            └── android
                ├── aarch64
                │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift_static-aarch64/android/aarch64/swiftrt.o
                ├── armv7
                │   └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift_static-armv7/android/armv7/swiftrt.o
                └── x86_64
                    └── swiftrt.o -> ../../../../../../swift-resources/usr/lib/swift_static-x86_64/android/x86_64/swiftrt.o

marcprux and others added 2 commits May 17, 2025 20:03
* Add static libraries to post-install script

* Add post-install script to SDK bundle

* Add post-install script to SDK bundle

* Update submodules
@marcprux
Copy link
Author

As of 72964f5, the Android SDK is now being built in a Docker container.

marcprux and others added 2 commits August 21, 2025 20:20
* Address nits

* Eliminate unnecessaryt pushds and use run cmake install instead of ninja

* Generate SBOM with SDK dependencies

* Add example of command for building locally
@marcprux marcprux requested a review from etcwilde August 22, 2025 02:54
@marcprux
Copy link
Author

@etcwilde @shahmishal Now that this PR is ready to go, can you let us know any final steps we need in order to integrate this with the Swift snapshot/release process? Are the scripts for the static Linux and WASM SDKs run as part of the internal CI, or are they performed manually by someone?

I also notice that @al45tair recently added some command-line flags (in #476) to the static Linux SDK build like --no-fetch, --archs, etc. Would these be useful to add here as well (either as part of this PR or a new one)?

@al45tair
Copy link
Contributor

@marcprux The Static SDK for Linux gets built by a separate Jenkins job, e.g. for 6.2: https://ci.swift.org/view/Swift%206.2/job/oss-swift-6.2-package-static-sdk/

It isn't built manually, except when working on it locally.

@marcprux
Copy link
Author

Thanks for the insight! So all we need is an equivalent "Android SDK" CI like the Static SDK job. Is the source script for this job available for inspection somewhere? Is this something I can help develop and/or contribute?

@etcwilde mentioned at the Android Workgroup meeting on Tuesday that he would do a final review of this PR, so I expect this should be merged imminently, and then the build script will be ready. As I've mentioned, we're really itching to start getting Android SDK snapshots published so we have time for some real-world testing before a final 6.2 release. We're already building the SDK periodically in an unofficial GitHub action (e.g., see the latest artifacts at https://github.com/swift-android-sdk/swift-android-sdk-build/actions/runs/17320318144), so all that remains is to get this into Jenkins and then add whatever deployment step is necessary to get it published to swift.org.

As I say, I'm happy to help out with any tasks needed to get this over the finish line. Just let me know what I can do.

CC: @shahmishal

@marcprux
Copy link
Author

marcprux commented Sep 2, 2025

Can we get some attention on this PR? Even if you don't start running it right away as part of the Swift release process, can we at least get it merged so it is ready to go?

Copy link
Member

@etcwilde etcwilde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good. Thank you for working through it.

@shahmishal
Copy link
Member

We should resolve this failure before merging the change:

Testing swift-ci/sdks/android/Dockerfile
Running: docker build --no-cache=true -f swift-ci/sdks/android/Dockerfile -t swift_ci_sdks_android_dockerfile .
Running: mv swift-ci_sdks_android_Dockerfile.log FAILEDswift-ci_sdks_android_Dockerfile.log
[FAILED] - swift-ci/sdks/android/Dockerfile
Running: docker image rm swift_ci_sdks_android_dockerfile
Error response from daemon: No such image: swift_ci_sdks_android_dockerfile:latest
Running: docker image prune -f
Total reclaimed space: 0B
[FAILED] - swift-ci/sdks/android/Dockerfile

FAILEDswift-ci_sdks_android_Dockerfile.log

@marcprux
Copy link
Author

marcprux commented Sep 3, 2025

How are you running it? Manually?

The build action in the GitHub CI is passing:

      - name: Build Android SDK (Docker)
        if: ${{ matrix.build-type == 'docker' }}
        working-directory: swift-ci/sdks/android
        run: |
          ./build-docker ${BUILD_SCHEME} ${WORKDIR}

Are you running it the swift-ci/sdks/android folder? That what I would guess from the error in the log file:

Dockerfile:78
--------------------
  76 |     ENV SWIFT_BUILD_DOCKER="1"
  77 |     
  78 | >>> COPY scripts /scripts
  79 |     RUN chmod ugo+x /scripts/*
  80 |     
--------------------
ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref 33a18c03-7dc8-4ab9-bfe1-99342b7c1aaf::spe3d0y3e3cz7aksuhdav9k93: "/scripts": not found

@shahmishal
Copy link
Member

shahmishal commented Sep 3, 2025

How are you running it? Manually?

The build action in the GitHub CI is passing:

      - name: Build Android SDK (Docker)
        if: ${{ matrix.build-type == 'docker' }}
        working-directory: swift-ci/sdks/android
        run: |
          ./build-docker ${BUILD_SCHEME} ${WORKDIR}

Are you running it the swift-ci/sdks/android folder? That what I would guess from the error in the log file:

Dockerfile:78
--------------------
  76 |     ENV SWIFT_BUILD_DOCKER="1"
  77 |     
  78 | >>> COPY scripts /scripts
  79 |     RUN chmod ugo+x /scripts/*
  80 |     
--------------------
ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref 33a18c03-7dc8-4ab9-bfe1-99342b7c1aaf::spe3d0y3e3cz7aksuhdav9k93: "/scripts": not found

We have script ./ci_test.py in the repo which is ran by the GitHub Actions.

@marcprux
Copy link
Author

marcprux commented Sep 4, 2025

I'm unclear on the expected environment for this command. As this was modeled on the static-linux Dockerfile, I based the android SDK Dockerfile on the assumption that the file would be built with the working directory being the android/ folder. I tried running manually against the static Linux Dockerfile with the same command, and I got a similar error:

Static Linux Docker error
$ docker build --no-cache=true -f swift-ci/sdks/static-linux/Dockerfile -t swift_ci_sdks_static-swift_dockerfile .

[+] Building 0.7s (12/14)                                                                                                                  docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                                                                       0.0s
 => => transferring dockerfile: 2.65kB                                                                                                                     0.0s
 => [internal] load metadata for docker.io/library/ubuntu:22.04                                                                                            0.6s
 => [internal] load .dockerignore                                                                                                                          0.0s
 => => transferring context: 2B                                                                                                                            0.0s
 => CANCELED [ 1/10] FROM docker.io/library/ubuntu:22.04@sha256:4e0171b9275e12d375863f2b3ae9ce00a4c53ddda176bd55868df97ac6f21a6e                           0.0s
 => => resolve docker.io/library/ubuntu:22.04@sha256:4e0171b9275e12d375863f2b3ae9ce00a4c53ddda176bd55868df97ac6f21a6e                                      0.0s
 => => sha256:4e0171b9275e12d375863f2b3ae9ce00a4c53ddda176bd55868df97ac6f21a6e 6.69kB / 6.69kB                                                             0.0s
 => => sha256:4fbb08094ffa2d7a1ae4d0c6d1a5a4da82034841ecf1391e00e645061307edc6 424B / 424B                                                                 0.0s
 => => sha256:d2b493e1373bfeb802433261f9ae11dfa3fe1af182706d9768074c20a92329a7 2.31kB / 2.31kB                                                             0.0s
 => [internal] load build context                                                                                                                          0.0s
 => => transferring context: 2B                                                                                                                            0.0s
 => CACHED [ 2/10] RUN apt-get -q update     && DEBIAN_FRONTEND=noninteractive apt-get -q install -y     build-essential     cmake     ninja-build     py  0.0s
 => ERROR [ 3/10] COPY scripts/install-swift.sh /scripts/install-swift.sh                                                                                  0.0s
 => CACHED [ 4/10] RUN chmod ugo+x /scripts/install-swift.sh                                                                                               0.0s
 => CACHED [ 5/10] RUN /scripts/install-swift.sh                                                                                                           0.0s
 => ERROR [ 6/10] COPY scripts /scripts                                                                                                                    0.0s
 => CACHED [ 7/10] RUN chmod ugo+x /scripts/*                                                                                                              0.0s
 => ERROR [ 8/10] COPY resources /resources                                                                                                                0.0s
------
 > [ 3/10] COPY scripts/install-swift.sh /scripts/install-swift.sh:
------
------
 > [ 6/10] COPY scripts /scripts:
------
------
 > [ 8/10] COPY resources /resources:
------

 2 warnings found (use docker --debug to expand):
 - SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "SWIFT_SIGNING_KEY") (line 63)
 - SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "SWIFT_SIGNING_KEY") (line 57)
Dockerfile:88
--------------------
  86 |     RUN chmod ugo+x /scripts/*
  87 |     
  88 | >>> COPY resources /resources
  89 |     
  90 |     # Create a user
--------------------
ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref 19bdc85c-49c5-4899-bc25-2a1cffd11dfe::t4bh7lh1ebycv2eg7uhr7cg1a: "/resources": not found

As a test, I tried making a PR change to the static-linux SDK's Dockerfile at marcprux#1, and the CI also errored out when running ci_test.py. Manually running the command (docker build --no-cache=true -f swift-ci/sdks/static-linux/Dockerfile -t swift_ci_sdks_static_linux_dockerfile .) yields the error above.

I'm happy to fix anything that needs fixing, I'm just not sure what the expectation is for the environment and working directory of the ci_test.py check. It seems more designed for running against the configurations like swift-ci/main/ubuntu/24.04/Bootstrap/Dockerfile.

@marcprux
Copy link
Author

marcprux commented Sep 4, 2025

Also, 62c8581 seems to indicate that it is intended that the Docker build will be run from the folder in which it resides:

  • [CI] Run Docker builds in the right directory.

Make sure we run the Docker builds in the directory containing the
Dockerfile. Also, prefer lists of arguments rather than strings,
especially when including filenames.

echo 'import Dispatch' >> Sources/DemoProject/DemoProject.swift
echo 'import Android' >> Sources/DemoProject/DemoProject.swift
- name: Test Demo Project on Android
uses: skiptools/swift-android-action@main
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are we using this action for?

Copy link
Member

@finagolfin finagolfin Sep 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing, this entire github workflow change is just a demo. We're looking for guidance on how you want to do it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we discussed in the review for the file, that whole android-build section of the workflow is just for validating the build process while we are iterating on the PR. It has been very useful for ensuring that all the Android SDK build variants run successfully, but we figured we might not want it in the final PR workflow.

I've excised that whole section in 8eb982e.

repository: apple/swift-algorithms
path: swift-algorithms
- name: Test swift-algorithms
uses: skiptools/swift-android-action@main
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are we using this action for?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also removed in 8eb982e

# use an out-of-tree build folder
export SWIFT_BUILD_ROOT=${build_dir}/swift-project

./swift/utils/build-script \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a blocker: We should create a preset in the swift repo, incase someone changes the flags we don't break android sdk.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My goal is to eventually obsolete this build script by replacing it entirely with a build preset and a call to the swift-sdk-generator tool. However, since we couldn't get that done before the 6.2 release, we chose to instead reuse the static linux SDK build script as much as possible, which you can see by just running diff -ruw between this new Android build and the current static linux SDK build.

The only differences to the static linux SDK build are that we use the official build-script to build much more of the toolchain, had to add a post-install script because configuring external C/C++ platform SDKs like the Android NDK is still partially broken in SwiftPM, swiftlang/swift-package-manager#8958, (the static linux SDK doesn't face this problem because it ships Musl libc and libc++ in the bundle, which we didn't want to do with the C/C++ libraries from the Android NDK), and instead of the single build script, we ship both a build-docker and a build-local, depending on whether you want to use Docker or not (we know you only use Docker on this official CI, but we provided it for the convenience of others who don't want Docker).

@shahmishal
Copy link
Member

We need to add license header to the new files.

# ===----------------------------------------------------------------------===
#
#  This source file is part of the Swift.org open source project
#
#  Copyright (c) 2025 Apple Inc. and the Swift project authors
#  Licensed under Apache License v2.0 with Runtime Library Exception
#
#  See https://swift.org/LICENSE.txt for license information
#  See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
#
# ===----------------------------------------------------------------------===

@shahmishal
Copy link
Member

I'm unclear on the expected environment for this command. As this was modeled on the static-linux Dockerfile, I based the android SDK Dockerfile on the assumption that the file would be built with the working directory being the android/ folder. I tried running manually against the static Linux Dockerfile with the same command, and I got a similar error:

Static Linux Docker error
As a test, I tried making a PR change to the static-linux SDK's Dockerfile at marcprux#1, and the CI also errored out when running ci_test.py. Manually running the command (docker build --no-cache=true -f swift-ci/sdks/static-linux/Dockerfile -t swift_ci_sdks_static_linux_dockerfile .) yields the error above.

I'm happy to fix anything that needs fixing, I'm just not sure what the expectation is for the environment and working directory of the ci_test.py check. It seems more designed for running against the configurations like swift-ci/main/ubuntu/24.04/Bootstrap/Dockerfile.

Thanks for looking into this. We can file a GitHub Issue for now, and resolve this in a future PR.

@finagolfin
Copy link
Member

Btw, Mishal, we have designed this for two separate purposes, as you asked for:

  1. To be run as a daily CI job, that runs the compiler validation suite for each of the three best-supported Android architectures, replacing the current Android community CI, then just builds the SDK bundle as an additional check.
  2. To be used to build official snapshot and release bundles only when those are tagged. You can either build those Android bundles with a prebuilt official linux release or snapshot toolchain, or build the Swift compiler itself from source and run the compiler validation suite for the Android bundle, by setting BUILD_COMPILER=1.

Just let us know what other build options you want and what interface you'd like for controlling those options and we can add it. Also, this currently builds and tests from trunk and the release/6.2 branch without a hitch, but my last pulls for 6.2.1 and 6.2.0 are still pending approval, so we will need to get those in or apply them externally to produce 6.2.1 or 6.2.0 Android bundles with this Docker build.

@marcprux
Copy link
Author

marcprux commented Sep 4, 2025

We need to add license header to the new files.

Done in 534175d and 510addd.

Hoping this buttons everything up.🤞

@marcprux marcprux requested a review from shahmishal September 4, 2025 15:12
@marcprux
Copy link
Author

marcprux commented Sep 5, 2025

@shahmishal I am guessing that the next step will be to get this build running in the CI, similar to https://ci.swift.org/job/oss-swift-6.2-package-static-sdk/. Is there anything we can do to help move that along? We'd love to start seeing the builds running along on their own so we can swap out the GitHub and community CI build jobs, and update the status grid at https://github.com/swiftlang/swift?tab=readme-ov-file#swift-programming-language

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants